from typing import TypedDict, List
from xhs_auto_poster.common.logger_util import get_logger

logger = get_logger(__name__)
logger.debug("加载AgentState类型定义")


class AgentState(TypedDict):
    """
    LangGraph Agent状态定义，用于在节点间传递数据
    包含输入、中间状态和输出字段
    """
    # 输入
    input: str  # 用户输入文本
    # 判断是否有发小红书的意图
    xhs_publish_intent: bool  # 是否有小红书发布意图
    # 生成小红书标题和正文
    xhs_tcm_post_title: str  # 小红书标题
    xhs_tcm_post_content: str  # 小红书内容
    xhs_tcm_post_site: str  # 小红书发布站点
    # 生成小红书图片
    xhs_tcm_post_image_path: List[str]  # 图片路径列表
    xhs_tcm_tip: str  # 提示信息
    # 是否能发布小红书
    is_publish_xhs: bool  # 是否满足发布条件
    # 生成小红书markdown
    xhs_tcm_post_markdown: str  # Markdown格式内容
    # 输出直接用户回答
    direct_out: str  # 直接输出给用户的回答

    # 输出
    output: str
